package com.gameShare.mappers.game

import com.gameShare.entity.dto.game.GameCardDto
import com.gameShare.entity.po.game.GameInfo
import com.gameShare.entity.query.GameInfoQuery
import org.apache.ibatis.annotations.Param

interface GameInfoMapper {

    fun selectById(@Param("id") id : String) : GameInfo?

    fun selectCount(@Param("query") query : GameInfoQuery) : Int

    fun selectBaseInfoPage(year : String?, monthList : List<String>?, gameType : Int?, gameLang : Int?, gamePlatform : Int?, start: Int, end: Int, orderBy : String?) : List<GameCardDto>

    fun selectBaseInfoCount(year : String?, monthList: List<String>?, gameType: Int?, gameLang: Int?, gamePlatform: Int?) : Int

    fun selectRandomInfo() : GameInfo

    fun selectUserIdByGameId(@Param("gameId") gameId : String) : String
}